package com.zhangxi.service;

import com.zhangxi.dao.CustomerDao;
import com.zhangxi.javabean.Customer;

import java.util.List;

/**
 * ClassName: CustomerService
 * Package: com.zhangxi
 */

/**
 * 这是一个具有管理功能的功能类. 内部数据不允许外部随意修改, 具有更好的封装性.
 */
public class CustomerService {
    private CustomerDao customerDao = new CustomerDao();

    /**
     * 用途：返回所有客户对象
     * 返回：集合
     */
    public List<Customer> getList() {
        try {
            return customerDao.listCustomer();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    /**
     * 用途：添加新客户
     * 参数：customer指定要添加的客户对象
     */
    public void addCustomer(Customer customer) {
        try {
            customerDao.insertCustomer(customer);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    /**
     * 修改指定id号的客户对象的信息
     *
     * @param customer 对象
     * @return 修改成功返回true, false表明指定id的客户未找到
     */
    public boolean updateCustomer(Customer customer) {
        int row = 0;
        try {
            row = customerDao.updateCustomer(customer);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        return row > 0;
    }

    /**
     * 用途：删除指定id号的的客户对象记录
     * 参数： id 要删除的客户的id号
     * 返回：删除成功返回true；false表示没有找到
     */
    public boolean deleteCustomer(int id) {
        int row = 0;
        try {
            row = customerDao.deleteCustomer(id);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        return row > 0;
    }
}
